#include <iostream>
//#include <unistd.h>		// sleep()
#include <stdlib.h>

using namespace std;

int main()
{
	// 位与（AND）运算符 &
	int a = 5; // 二进制表示: 0101
	int b = 9; // 二进制表示: 1001
	int c = a & b; // 结果为 1 (0001)

	// 位或（OR）运算符 |
	c = a | b; // 结果为 13 (1101)

	// 位异或（XOR）运算符 ^
	c = a ^ b; // 结果为 12 (1100)

	// 位非（NOT）运算符 ~
	c = ~a; // 结果为 -6 (取决于系统的整数表示方法)
	cout << "~a = " << c << endl;

	// 左移（Left Shift）运算符 <<
	c = a << 1; // 结果为 10 (1010)

	// 右移（Right Shift）运算符 >>
	c = a >> 1; // 结果为 2 (0010)
	
	cin >> c;
	return 0;
}
